# from random import randint
#
# for i in range(1,10+1,2):
#     print(i,end="\t")
# #打印100以内能被3整除的数字
# for i in range(1,100+1):
#     if i%3 ==0:
#         print(i,end = "\t")
#
# #猜数字
# #产生随机数
# num=randint(1,100)
# while True:
#     guess = int(input("请输入一个数字："))
#     if guess > num:
#         print("太大了")
#     elif guess<num:
#         print("太小了")
#     else:
#         print("猜对了")
#     break#结束循环
# for i in range(1,100+1):
#         # if i % 7==0 or str(i).find('7') !=-1:
#         # if i % 7==0 or str(i).count('7') >0:
#         if i % 7==0 or '7' in str(i) != -1:
#           print(i,end="\t")

          #打印菱形
# for i in range(1,11+1,2):
#     print(("*" * i).center(11))#center 字符串居中
# for i in range(1,11+1,-2):
#     print(("*" * i).center(11))



# 九九乘法表
for i in range(1, 10):
    for j in range(1, i + 1):
        print('{}x{}={}\t'.format(j, i, i * j), end='')
    print()


# Python 斐波那契数列实现
# 获取用户输入数据
nterms = int(input("你需要几项？"))

# 第一和第二项
n1 = 0
n2 = 1
count = 2

# 判断输入的值是否合法
if nterms <= 0:
    print("请输入一个正整数。")
elif nterms == 1:
    print("斐波那契数列：")
    print(n1)
else:
    print("斐波那契数列：")
    print(n1, ",", n2, end=" , ")
    while count < nterms:
        nth = n1 + n2
        print(nth, end=" , ")
        # 更新值
        n1 = n2
        n2 = nth
        count += 1


#打印100以内的质数
# 定义一个空列表用于存放100以内的质数
prime_num = []
# 遍历获取2~100之间的整数，外层循环控制取值
for num in range(2, 101):
    # 内层循环取因数（除1和它本身外）
    for i in range(2, num):
        # 判断num是否是质数，在2~num-1之间能否找到一个数，能被i整除
        if num % i == 0:
            # 不是质数，结束内层循环，判断下一个数
            break
    # break不执行，else执行，则num是一个质数
    else:
        # 将质数num添加到列表中
        prime_num.append(num)
print(prime_num)


#打印100以内的完数
# 循环输出1到100之间的数  range():含头不含尾
for i in range(1,101):
    # 此时i代表1-100之间所有的数
    # 定义和的初始值
    sum = 0
    # 构造数字的因子
    for j in range(1,i):
    #     因子:能被i整除的是i的因子
        if i % j == 0:
    #     只要是i的因子那么就相加
            sum += j
    # 如果 因子相加的和  等于i本身那么这个数就是完数
    if sum == i:
        print(f"{i}是完数")


#打印水仙花数
for n in range(100,1000):
     i = n // 100           #取百位
     j = n //10 %10         #取十位
     k = n % 10             #取个位
     if n == (i**3+j**3+k**3):
        print(n)
